Mobile communication devices have become popular for business and personal use due to a relatively recent increase in number of services and features that the devices and mobile infrastructures support. Handheld mobile communication devices, sometimes referred to as mobile devices, are essentially portable computers having wireless capability, and come in various forms. Examples of mobile devices include Personal Digital Assistants (PDAs), cellular phones and smart phones.
More recently, global positioning system (GPS) receivers have been integrated within such mobile devices for providing enhanced location-based services. Alternatively, mobile devices may interface with external GPS receivers via a wired interface, such as Universal Serial Bus (USB), or a wireless interface, such as Bluetooth®. In operation, a location-based application executing on the mobile device can use data obtained from a GPS receiver to provide a user with location data. This information can be used in conjunction with an application on the mobile device to provide the user with real-time location-based information.
In other implementations, the location-based application can use the data obtained from the GPS receiver as well as other data to send a request to an application server for desired information. If the mobile device is location aware, the request includes the current location of the device. The application server extracts content from a Geographic Information System (GIS) database and provides an appropriate response to the mobile device.
Accordingly, the application server can use real-time location-based information to provide a number of competitive advantages that come from accessing location information in real time. For example, mapping-applications can be used to provide the user with real-time mapping information. As another example, data can be pushed to the user in accordance with the user's determined geographic location.
Location-based applications can be generally divided into two categories: device-based location applications and server-based location applications.
Device-based location applications refer to applications run on GPS-equipped mobile devices. The device queries its current location via the GPS receiver and the application uses the device's current location information for providing service using GIS software installed on the device.
Server-based location applications refer to applications run on mobile devices that may or many not be GPS-equipped. Rather, a network server maintains a location of the mobile devices. This can be achieved by the mobile device obtaining its coordinates and transmitting them to the network server. Alternatively, the network server can obtain the location of the mobile device directly, using a number of known techniques. One such technique is known as assisted-GPS. In assisted-GPS, signalling information from a position determining entity is provided to the mobile device to aid in position determination. As long as the mobile device can connect with the network server, it can query its location from the network server rather than from the GPS receiver.
For location-based applications that interact with an application server for obtaining information, it may be impractical to retrieve all of the requested information at one time and pre-cache it on the mobile device. For example, consider an location-based application that offers travel directions. If a user is travelling from an address in New York City to an address in San Francisco, the number of instructions comprising the directions would be substantial. Specifically, it is likely that direction would include several hundred turns at specific intersections. Further, for each turn, three alternate turns are provided in case the original turn is missed. Further, supplemental information, such as names of businesses, cities, regions, lakes, rivers and other geographic landmarks along the route is also provided. As will be appreciated the amount of data required for a given trip may require a substantial amount of bandwidth and storage space on the mobile device.
Accordingly, one solution to this problem is for the mobile device to retrieve data as the user is travelling. However, such a solution requires a constant connection to a communication network so that the mobile device is able to communicate with the application server. Unfortunately, it is likely that the mobile device will be out of coverage at several points during travel, which would result in a loss of connection to the communication network. As a result, the location-based application may not be able to properly direct the user, who may miss a turn and get lost. This problem can be generalized to any location-based application that relies on a data streaming connection to the mobile device.
Therefore, it can be seen that there is a need for an improved method for retrieving data to a mobile device for use with location-based services that overcomes the above-described problems.